package ranveterinaria.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import ranveterinaria.excepcion.DAOExcepcion;
import ranveterinaria.modelo.AtencionPacienteModelo;
import ranveterinaria.modelo.DoctorModelo;
import ranveterinaria.modelo.PacienteModelo;
import ranveterinaria.util.ConexionBD;

public class AtencionPacienteDAO extends BaseDAO{
	
	public Collection<AtencionPacienteModelo> listar() throws DAOExcepcion {
        Collection<AtencionPacienteModelo> c = new ArrayList<AtencionPacienteModelo>();
        Connection con = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
                con = ConexionBD.obtenerConexion();
                String query = "SELECT CODIGO_ATENCION_PACIENTE,NOTA_PACIENTE,CONDICION_ESPECIAL_PACIENTE,CODIGO_PACIENTE,CODIGO_DOCTOR FROM ATENCION_PACIENTE";
                
                stmt = con.prepareStatement(query);
                rs = stmt.executeQuery();
                while (rs.next()) {
                	AtencionPacienteModelo vo = new AtencionPacienteModelo();                
        			
                	PacienteModelo pacienteModelo = new PacienteModelo();
                	DoctorModelo doctorModelo = new DoctorModelo();
                	                	
                	pacienteModelo.setCodigoPac(rs.getInt(4));									
					vo.setPaciente(pacienteModelo);
					
					doctorModelo.setCodigoDoctor(rs.getInt(5));									
					vo.setDoctor(doctorModelo);
                	
					vo.setIdAtencionPaciente(rs.getInt(1));
					vo.setNota(rs.getString(2));
					vo.setObservaciones(rs.getString(3));									
					c.add(vo);
                }
                                
        } catch (SQLException e) {
                System.err.println(e.getMessage());
                throw new DAOExcepcion(e.getMessage());
        } finally {
                this.cerrarResultSet(rs);
                this.cerrarStatement(stmt);
                this.cerrarConexion(con);
        }
        return c;
	}

}
